package cn.iocoder.yudao.module.erp.controller.admin.stocksmove.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import cn.iocoder.yudao.module.erp.dal.dataobject.stocksmoveitem.StocksMoveItemDO;

@Schema(description = "管理后台 - ERP 库存调拨单新增/修改 Request VO")
@Data
public class StocksMoveSaveReqVO {

    @Schema(description = "调拨编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "21480")
    private Long id;

    @Schema(description = "调拨单号")
    private String no;

    @Schema(description = "调出仓库编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "9310")
    @NotNull(message = "调出仓库编号不能为空")
    private Long fromWarehouseId;

    @Schema(description = "调入仓库编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "18641")
    @NotNull(message = "调入仓库编号不能为空")
    private Long toWarehouseId;

    @Schema(description = "调拨时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "调拨时间不能为空")
    private LocalDateTime moveTime;

    @Schema(description = "备注", example = "你说的对")
    private String remark;

    @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "状态不能为空")
    private Integer status;

    @Schema(description = "流程实例的编号", example = "8437")
    private String processInstanceId;

    @Schema(description = "ERP 库存调拨项列表")
    private List<StocksMoveItemDO> stocksMoveItems;

}